<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Flow-IPC: ipc::session::shm::arena_lend::jemalloc::Session_server&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectalign">
   <div id="projectname">Flow-IPC<span id="projectnumber">&#160;2.0.0</span>
   </div>
   <div id="projectbrief">Flow-IPC project: Public API.</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespaceipc.html">ipc</a></li><li class="navelem"><a class="el" href="namespaceipc_1_1session.html">session</a></li><li class="navelem"><a class="el" href="namespaceipc_1_1session_1_1shm.html">shm</a></li><li class="navelem"><a class="el" href="namespaceipc_1_1session_1_1shm_1_1arena__lend.html">arena_lend</a></li><li class="navelem"><a class="el" href="namespaceipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc.html">jemalloc</a></li><li class="navelem"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html">Session_server</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#related">Related Functions</a> &#124;
<a href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server-members.html">List of all members</a>  </div>
  <div class="headertitle"><div class="title">ipc::session::shm::arena_lend::jemalloc::Session_server&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt; Class Template Reference</div></div>
</div><!--header-->
<div class="contents">

<p>This is to vanilla <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html" title="This is to vanilla Session_server what shm::arena_lend::jemalloc::Server_session is to vanilla Server...">Session_server</a> what <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html" title="Identical to session::Server_session in every way, except that it makes available two SHM arenas,...">shm::arena_lend::jemalloc::Server_session</a> is to vanilla <a class="el" href="namespaceipc_1_1session.html#ab01d5bce0ab2f3435ca9dd88d27609dc" title="A vanilla Server_session with no optional capabilities.">Server_session</a>: it is the session-server type that starts SHM-enabled sessions with SHM-jemalloc provider (ipc::shm::arena_lend::jemalloc).  
 <a href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#details">More...</a></p>

<p><code>#include &lt;session_server.hpp&gt;</code></p>

<p>Inherits Session_server_impl&lt; Session_server&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt;, Server_session&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt; &gt;.</p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-types" name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:ad4d812cdb1a017fb603c16b3a386d433"><td class="memItemLeft" align="right" valign="top"><a id="ad4d812cdb1a017fb603c16b3a386d433" name="ad4d812cdb1a017fb603c16b3a386d433"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Server_session_obj</b> = <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html">shm::arena_lend::jemalloc::Server_session</a>&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt;</td></tr>
<tr class="memdesc:ad4d812cdb1a017fb603c16b3a386d433"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short-hand for the concrete <code><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html" title="Identical to session::Server_session in every way, except that it makes available two SHM arenas,...">Server_session</a></code>-like type emitted by <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a4b451906ee2b46d230df5f252bbb64ed" title="Contract identical to simpler session::Session_server::async_accept() overload; but internally ensure...">async_accept()</a>. <br /></td></tr>
<tr class="separator:ad4d812cdb1a017fb603c16b3a386d433"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa846158c320f2870c77043b6270bb503"><td class="memItemLeft" align="right" valign="top"><a id="aa846158c320f2870c77043b6270bb503" name="aa846158c320f2870c77043b6270bb503"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Mdt_reader_ptr</b> = typename Impl::Mdt_reader_ptr</td></tr>
<tr class="memdesc:aa846158c320f2870c77043b6270bb503"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short-hand for <a class="el" href="classipc_1_1session_1_1Session__mv.html#a2b1215fb0c9738b9fcfbb337d23c43df" title="Implements Session API per contract.">Session_mv::Mdt_reader_ptr</a>. <br /></td></tr>
<tr class="separator:aa846158c320f2870c77043b6270bb503"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae0a96fec25d9deea4000ddf72046f379"><td class="memItemLeft" align="right" valign="top"><a id="ae0a96fec25d9deea4000ddf72046f379" name="ae0a96fec25d9deea4000ddf72046f379"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Mdt_builder</b> = typename <a class="el" href="classipc_1_1session_1_1Session__mv.html#af10f452e602e4ea7389c6a77dd9a0f88">Server_session_obj::Mdt_builder</a></td></tr>
<tr class="memdesc:ae0a96fec25d9deea4000ddf72046f379"><td class="mdescLeft">&#160;</td><td class="mdescRight">Metadata builder type passed to <code>mdt_load_func()</code> in advanced <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a4b451906ee2b46d230df5f252bbb64ed" title="Contract identical to simpler session::Session_server::async_accept() overload; but internally ensure...">async_accept()</a> overload. <br /></td></tr>
<tr class="separator:ae0a96fec25d9deea4000ddf72046f379"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95e9d47a5bd9c32b3d3970ed3af0db01"><td class="memItemLeft" align="right" valign="top"><a id="a95e9d47a5bd9c32b3d3970ed3af0db01" name="a95e9d47a5bd9c32b3d3970ed3af0db01"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Channels</b> = typename Impl::Channels</td></tr>
<tr class="memdesc:a95e9d47a5bd9c32b3d3970ed3af0db01"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short-hand for <a class="el" href="classipc_1_1session_1_1Session__mv.html#af87da439644b2afd73d6a13d97e7985f" title="Container (vector&lt;&gt;) of Channel_obj.">Session_mv::Channels</a>. <br /></td></tr>
<tr class="separator:a95e9d47a5bd9c32b3d3970ed3af0db01"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e47c282616158733240d3b7bd808036"><td class="memItemLeft" align="right" valign="top"><a id="a1e47c282616158733240d3b7bd808036" name="a1e47c282616158733240d3b7bd808036"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Arena</b> = typename <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html#a988281add5dc4a31202cfba47f458e5a">Server_session_obj::Base::Arena</a></td></tr>
<tr class="memdesc:a1e47c282616158733240d3b7bd808036"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short-hand for <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#ae30ae4b65cd4178fa26eed660688829f" title="The arena object on which one may call construct&lt;T&gt;(ctor_args...), where ctor_args are arguments to t...">shm::arena_lend::jemalloc::Session_mv::Arena</a>. See <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a8d11292ef977d04acb9260036100c605" title="Returns pointer to the per-app SHM-arena, whose lifetime extends until *this is destroyed; or null if...">app_shm()</a> in particular. <br /></td></tr>
<tr class="separator:a1e47c282616158733240d3b7bd808036"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d22e6f00d6b8b92fe99198837bce3b9"><td class="memItemLeft" align="right" valign="top"><a id="a4d22e6f00d6b8b92fe99198837bce3b9" name="a4d22e6f00d6b8b92fe99198837bce3b9"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Structured_msg_builder_config</b> = typename <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html#a7de5ec3e9331c46664a493e060edb6f6">Server_session_obj::Base::Structured_msg_builder_config</a></td></tr>
<tr class="memdesc:a4d22e6f00d6b8b92fe99198837bce3b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short-hand for <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#aaf1b1ad45b96d49c4c86e234a656f01b" title="Implements Session API per contract.">shm::arena_lend::jemalloc::Session_mv::Structured_msg_builder_config</a>. <br /></td></tr>
<tr class="separator:a4d22e6f00d6b8b92fe99198837bce3b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b167219307d2016e46490b82138c553"><td class="memItemLeft" align="right" valign="top"><a id="a0b167219307d2016e46490b82138c553" name="a0b167219307d2016e46490b82138c553"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Structured_msg_reader_config</b> = typename <a class="el" href="classipc_1_1session_1_1Session__mv.html#a335c3585402cc9430f8c909e8c7e55f4">Server_session_obj::Base::Structured_msg_reader_config</a></td></tr>
<tr class="memdesc:a0b167219307d2016e46490b82138c553"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short-hand for <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a50304d6dba4a332952aee67dc37598d0" title="Implements Session API per contract.">shm::arena_lend::jemalloc::Session_mv::Structured_msg_reader_config</a>. <br /></td></tr>
<tr class="separator:a0b167219307d2016e46490b82138c553"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a5cfd3651a06380b877738c6b5fc353a9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a5cfd3651a06380b877738c6b5fc353a9">Session_server</a> (flow::log::Logger *logger_ptr, const <a class="el" href="structipc_1_1session_1_1Server__app.html">Server_app</a> &amp;srv_app_ref, const <a class="el" href="structipc_1_1session_1_1Client__app.html#add718cbf6aa1d2abb26fbadcc974a7bd">Client_app::Master_set</a> &amp;cli_app_master_set_ref, <a class="el" href="namespaceipc.html#aa3192e586cc45d3e7c22463bf2760f89">Error_code</a> *err_code=0)</td></tr>
<tr class="memdesc:a5cfd3651a06380b877738c6b5fc353a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor: identical to <a class="el" href="classipc_1_1session_1_1Session__server.html" title="To be instantiated typically once in a given process, an object of this type asynchronously listens f...">session::Session_server</a> ctor.  <a href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a5cfd3651a06380b877738c6b5fc353a9">More...</a><br /></td></tr>
<tr class="separator:a5cfd3651a06380b877738c6b5fc353a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b451906ee2b46d230df5f252bbb64ed"><td class="memTemplParams" colspan="2">template&lt;typename Task_err &gt; </td></tr>
<tr class="memitem:a4b451906ee2b46d230df5f252bbb64ed"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a4b451906ee2b46d230df5f252bbb64ed">async_accept</a> (<a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#ad4d812cdb1a017fb603c16b3a386d433">Server_session_obj</a> *target_session, Task_err &amp;&amp;on_done_func)</td></tr>
<tr class="memdesc:a4b451906ee2b46d230df5f252bbb64ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Contract identical to simpler <a class="el" href="classipc_1_1session_1_1Session__server.html#a13887cd64912bb5f5675e2817ff8435f" title="Asynchronously awaits for an opposing Client_session to request session establishment and calls on_do...">session::Session_server::async_accept()</a> overload; but internally ensures that the appropriate SHM-jemalloc arenas are available for use in the emitted <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#ad4d812cdb1a017fb603c16b3a386d433" title="Short-hand for the concrete Server_session-like type emitted by async_accept().">Server_session_obj</a>.  <a href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a4b451906ee2b46d230df5f252bbb64ed">More...</a><br /></td></tr>
<tr class="separator:a4b451906ee2b46d230df5f252bbb64ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76037239acb4b0082023dbe7e7dafb0b"><td class="memTemplParams" colspan="2">template&lt;typename Task_err , typename N_init_channels_by_srv_req_func , typename Mdt_load_func &gt; </td></tr>
<tr class="memitem:a76037239acb4b0082023dbe7e7dafb0b"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a76037239acb4b0082023dbe7e7dafb0b">async_accept</a> (<a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#ad4d812cdb1a017fb603c16b3a386d433">Server_session_obj</a> *target_session, <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a95e9d47a5bd9c32b3d3970ed3af0db01">Channels</a> *init_channels_by_srv_req, <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#aa846158c320f2870c77043b6270bb503">Mdt_reader_ptr</a> *mdt_from_cli_or_null, <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a95e9d47a5bd9c32b3d3970ed3af0db01">Channels</a> *init_channels_by_cli_req, N_init_channels_by_srv_req_func &amp;&amp;n_init_channels_by_srv_req_func, Mdt_load_func &amp;&amp;mdt_load_func, Task_err &amp;&amp;on_done_func)</td></tr>
<tr class="memdesc:a76037239acb4b0082023dbe7e7dafb0b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Contract identical to advanced <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a4b451906ee2b46d230df5f252bbb64ed" title="Contract identical to simpler session::Session_server::async_accept() overload; but internally ensure...">Session_server::async_accept()</a> overload; but internally ensures that the appropriate SHM-jemalloc arenas are available for use in the emitted <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#ad4d812cdb1a017fb603c16b3a386d433" title="Short-hand for the concrete Server_session-like type emitted by async_accept().">Server_session_obj</a>.  <a href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a76037239acb4b0082023dbe7e7dafb0b">More...</a><br /></td></tr>
<tr class="separator:a76037239acb4b0082023dbe7e7dafb0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d11292ef977d04acb9260036100c605"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a1e47c282616158733240d3b7bd808036">Arena</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a8d11292ef977d04acb9260036100c605">app_shm</a> (const <a class="el" href="structipc_1_1session_1_1Client__app.html">Client_app</a> &amp;app)</td></tr>
<tr class="memdesc:a8d11292ef977d04acb9260036100c605"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns pointer to the per-<code>app</code> SHM-arena, whose lifetime extends until <code>*this</code> is destroyed; or null if the given <a class="el" href="structipc_1_1session_1_1Client__app.html" title="An App that is used as a client in at least one client-server IPC split.">Client_app</a> has not yet opened at least 1 <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html" title="Identical to session::Server_session in every way, except that it makes available two SHM arenas,...">shm::arena_lend::jemalloc::Server_session</a> via <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a4b451906ee2b46d230df5f252bbb64ed" title="Contract identical to simpler session::Session_server::async_accept() overload; but internally ensure...">async_accept()</a>.  <a href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a8d11292ef977d04acb9260036100c605">More...</a><br /></td></tr>
<tr class="separator:a8d11292ef977d04acb9260036100c605"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa56818050f1bd25b26fc51690a6afbf8"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a1e47c282616158733240d3b7bd808036">Arena</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#aa56818050f1bd25b26fc51690a6afbf8">app_shm_ptr</a> (const <a class="el" href="structipc_1_1session_1_1Client__app.html">Client_app</a> &amp;app)</td></tr>
<tr class="memdesc:aa56818050f1bd25b26fc51690a6afbf8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Identical to <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a8d11292ef977d04acb9260036100c605" title="Returns pointer to the per-app SHM-arena, whose lifetime extends until *this is destroyed; or null if...">app_shm()</a> but returns that via a <code>shared_ptr</code>-handle as required for work directly within ipc::shm::arena_lend::jemalloc APIs.  <a href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#aa56818050f1bd25b26fc51690a6afbf8">More...</a><br /></td></tr>
<tr class="separator:aa56818050f1bd25b26fc51690a6afbf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa548c3379d4b8a8f0b9d618b0c1da7ba"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a4d22e6f00d6b8b92fe99198837bce3b9">Structured_msg_builder_config</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#aa548c3379d4b8a8f0b9d618b0c1da7ba">app_shm_builder_config</a> (const <a class="el" href="structipc_1_1session_1_1Client__app.html">Client_app</a> &amp;app)</td></tr>
<tr class="memdesc:aa548c3379d4b8a8f0b9d618b0c1da7ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns builder config suitable for capnp-serializing out-messages in SHM arena <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a8d11292ef977d04acb9260036100c605" title="Returns pointer to the per-app SHM-arena, whose lifetime extends until *this is destroyed; or null if...">app_shm()</a> for the same <code><a class="el" href="structipc_1_1session_1_1Client__app.html" title="An App that is used as a client in at least one client-server IPC split.">Client_app</a> app</code>.  <a href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#aa548c3379d4b8a8f0b9d618b0c1da7ba">More...</a><br /></td></tr>
<tr class="separator:aa548c3379d4b8a8f0b9d618b0c1da7ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1039d8bd2d4461085f3eeb5d24e40799"><td class="memItemLeft" align="right" valign="top">Structured_msg_builder_config::Builder::Session&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a1039d8bd2d4461085f3eeb5d24e40799">app_shm_lender_session</a> (const <a class="el" href="structipc_1_1session_1_1Client__app.html">Client_app</a> &amp;app)</td></tr>
<tr class="memdesc:a1039d8bd2d4461085f3eeb5d24e40799"><td class="mdescLeft">&#160;</td><td class="mdescRight">In short, what <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#aa548c3379d4b8a8f0b9d618b0c1da7ba" title="Returns builder config suitable for capnp-serializing out-messages in SHM arena app_shm() for the sam...">app_shm_builder_config()</a> is to shm::arena_lend::jemalloc::Session_mv::app_shm_builder_config(), this is to shm::arena_lend::jemalloc::app_shm_lender_session().  <a href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a1039d8bd2d4461085f3eeb5d24e40799">More...</a><br /></td></tr>
<tr class="separator:a1039d8bd2d4461085f3eeb5d24e40799"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96cce95ab7dccc577815b907c94b8f7e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a0b167219307d2016e46490b82138c553">Structured_msg_reader_config</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a96cce95ab7dccc577815b907c94b8f7e">app_shm_reader_config</a> (const <a class="el" href="structipc_1_1session_1_1Client__app.html">Client_app</a> &amp;app)</td></tr>
<tr class="memdesc:a96cce95ab7dccc577815b907c94b8f7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns reader config counterpart to <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#aa548c3379d4b8a8f0b9d618b0c1da7ba" title="Returns builder config suitable for capnp-serializing out-messages in SHM arena app_shm() for the sam...">app_shm_builder_config()</a> for a given <code><a class="el" href="structipc_1_1session_1_1Client__app.html" title="An App that is used as a client in at least one client-server IPC split.">Client_app</a> app</code>.  <a href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a96cce95ab7dccc577815b907c94b8f7e">More...</a><br /></td></tr>
<tr class="separator:a96cce95ab7dccc577815b907c94b8f7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2c6ecf04a16b5aba00bdede17aa52e1"><td class="memItemLeft" align="right" valign="top">ipc::shm::arena_lend::Owner_shm_pool_listener_for_repository *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#ac2c6ecf04a16b5aba00bdede17aa52e1">shm_arena_pool_listener</a> ()</td></tr>
<tr class="memdesc:ac2c6ecf04a16b5aba00bdede17aa52e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the arena-pool listener maintained throughout <code>*this</code> <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html" title="This is to vanilla Session_server what shm::arena_lend::jemalloc::Server_session is to vanilla Server...">Session_server</a>'s life.  <a href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#ac2c6ecf04a16b5aba00bdede17aa52e1">More...</a><br /></td></tr>
<tr class="separator:ac2c6ecf04a16b5aba00bdede17aa52e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a522c28128981264487a7e35dd9ea3ef8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a522c28128981264487a7e35dd9ea3ef8">to_ostream</a> (std::ostream *os) const</td></tr>
<tr class="memdesc:a522c28128981264487a7e35dd9ea3ef8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints string representation to the given <code>ostream</code>.  <a href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a522c28128981264487a7e35dd9ea3ef8">More...</a><br /></td></tr>
<tr class="separator:a522c28128981264487a7e35dd9ea3ef8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="related" name="related"></a>
Related Functions</h2></td></tr>
<tr><td class="ititle" colspan="2"><p >(Note that these are not member functions.) </p>
</td></tr>
<tr class="memitem:a4556b229bf2bfc3c9eb51af13c47de3d"><td class="memTemplParams" colspan="2">template&lt;session::schema::MqType S_MQ_TYPE_OR_NONE, bool S_TRANSMIT_NATIVE_HANDLES, typename Mdt_payload &gt; </td></tr>
<tr class="memitem:a4556b229bf2bfc3c9eb51af13c47de3d"><td class="memTemplItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a4556b229bf2bfc3c9eb51af13c47de3d">operator&lt;&lt;</a> (std::ostream &amp;os, const <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html">Session_server</a>&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt; &amp;val)</td></tr>
<tr class="memdesc:a4556b229bf2bfc3c9eb51af13c47de3d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints string representation of the given <code><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html" title="This is to vanilla Session_server what shm::arena_lend::jemalloc::Server_session is to vanilla Server...">Session_server</a></code> to the given <code>ostream</code>.  <a href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a4556b229bf2bfc3c9eb51af13c47de3d">More...</a><br /></td></tr>
<tr class="separator:a4556b229bf2bfc3c9eb51af13c47de3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><div class="compoundTemplParams">template&lt;session::schema::MqType S_MQ_TYPE_OR_NONE, bool S_TRANSMIT_NATIVE_HANDLES, typename Mdt_payload&gt;<br />
class ipc::session::shm::arena_lend::jemalloc::Session_server&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt;</div><p >This is to vanilla <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html" title="This is to vanilla Session_server what shm::arena_lend::jemalloc::Server_session is to vanilla Server...">Session_server</a> what <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html" title="Identical to session::Server_session in every way, except that it makes available two SHM arenas,...">shm::arena_lend::jemalloc::Server_session</a> is to vanilla <a class="el" href="namespaceipc_1_1session.html#ab01d5bce0ab2f3435ca9dd88d27609dc" title="A vanilla Server_session with no optional capabilities.">Server_session</a>: it is the session-server type that starts SHM-enabled sessions with SHM-jemalloc provider (ipc::shm::arena_lend::jemalloc). </p>
<p >Its API is identical to that of <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html" title="This is to vanilla Session_server what shm::arena_lend::jemalloc::Server_session is to vanilla Server...">Session_server</a>, except that it emits <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#ad4d812cdb1a017fb603c16b3a386d433" title="Short-hand for the concrete Server_session-like type emitted by async_accept().">Server_session_obj</a> that are <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html" title="Identical to session::Server_session in every way, except that it makes available two SHM arenas,...">shm::arena_lend::jemalloc::Server_session</a> and not vanilla <a class="el" href="namespaceipc_1_1session.html#ab01d5bce0ab2f3435ca9dd88d27609dc" title="A vanilla Server_session with no optional capabilities.">Server_session</a>.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">S_MQ_TYPE_OR_NONE</td><td>See vanilla <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a5cfd3651a06380b877738c6b5fc353a9" title="Constructor: identical to session::Session_server ctor.">Session_server</a>. </td></tr>
    <tr><td class="paramname">S_TRANSMIT_NATIVE_HANDLES</td><td>See vanilla <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a5cfd3651a06380b877738c6b5fc353a9" title="Constructor: identical to session::Session_server ctor.">Session_server</a>. </td></tr>
    <tr><td class="paramname">Mdt_payload</td><td>See vanilla <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a5cfd3651a06380b877738c6b5fc353a9" title="Constructor: identical to session::Session_server ctor.">Session_server</a>. </td></tr>
  </table>
  </dd>
</dl>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a5cfd3651a06380b877738c6b5fc353a9" name="a5cfd3651a06380b877738c6b5fc353a9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5cfd3651a06380b877738c6b5fc353a9">&#9670;&nbsp;</a></span>Session_server()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;session::schema::MqType S_MQ_TYPE_OR_NONE, bool S_TRANSMIT_NATIVE_HANDLES, typename Mdt_payload &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html">ipc::session::shm::arena_lend::jemalloc::Session_server</a>&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt;::Session_server </td>
          <td>(</td>
          <td class="paramtype">flow::log::Logger *&#160;</td>
          <td class="paramname"><em>logger_ptr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structipc_1_1session_1_1Server__app.html">Server_app</a> &amp;&#160;</td>
          <td class="paramname"><em>srv_app_ref</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structipc_1_1session_1_1Client__app.html#add718cbf6aa1d2abb26fbadcc974a7bd">Client_app::Master_set</a> &amp;&#160;</td>
          <td class="paramname"><em>cli_app_master_set_ref</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceipc.html#aa3192e586cc45d3e7c22463bf2760f89">Error_code</a> *&#160;</td>
          <td class="paramname"><em>err_code</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Constructor: identical to <a class="el" href="classipc_1_1session_1_1Session__server.html" title="To be instantiated typically once in a given process, an object of this type asynchronously listens f...">session::Session_server</a> ctor. </p>
<p >See its doc header.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">logger_ptr</td><td>See above. </td></tr>
    <tr><td class="paramname">srv_app_ref</td><td>See above. </td></tr>
    <tr><td class="paramname">cli_app_master_set_ref</td><td>See above. </td></tr>
    <tr><td class="paramname">err_code</td><td>See above. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a8d11292ef977d04acb9260036100c605" name="a8d11292ef977d04acb9260036100c605"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8d11292ef977d04acb9260036100c605">&#9670;&nbsp;</a></span>app_shm()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;session::schema::MqType S_MQ_TYPE_OR_NONE, bool S_TRANSMIT_NATIVE_HANDLES, typename Mdt_payload &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html">Session_server</a>&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt;<a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a1e47c282616158733240d3b7bd808036">::Arena</a> * <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html">ipc::session::shm::arena_lend::jemalloc::Session_server</a>&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt;::app_shm </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structipc_1_1session_1_1Client__app.html">Client_app</a> &amp;&#160;</td>
          <td class="paramname"><em>app</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns pointer to the per-<code>app</code> SHM-arena, whose lifetime extends until <code>*this</code> is destroyed; or null if the given <a class="el" href="structipc_1_1session_1_1Client__app.html" title="An App that is used as a client in at least one client-server IPC split.">Client_app</a> has not yet opened at least 1 <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html" title="Identical to session::Server_session in every way, except that it makes available two SHM arenas,...">shm::arena_lend::jemalloc::Server_session</a> via <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a4b451906ee2b46d230df5f252bbb64ed" title="Contract identical to simpler session::Session_server::async_accept() overload; but internally ensure...">async_accept()</a>. </p>
<p >Alternatively you may use shm::arena_lend::jemalloc::Session_mv::app_shm() off any session object filled-out by <code>*this</code> <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a4b451906ee2b46d230df5f252bbb64ed" title="Contract identical to simpler session::Session_server::async_accept() overload; but internally ensure...">async_accept()</a>, as long as its <a class="el" href="classipc_1_1session_1_1Server__session__mv.html#ac873543383b7a6da94d4353231f34ec2" title="The opposing application is described by a Client_app; this is that description.">Server_session_mv::client_app()</a> equals <code>app</code> (by <a class="el" href="structipc_1_1session_1_1App.html#a8e67b57829fe43a122a23c699b5de8fd" title="Brief application name, readable to humans and unique across all other applications&#39; names; used both...">App::m_name</a> equality).</p>
<p >If non-null is returned, then the same pointer value shall be returned for all subsequent calls with the same (by <a class="el" href="structipc_1_1session_1_1App.html#a8e67b57829fe43a122a23c699b5de8fd" title="Brief application name, readable to humans and unique across all other applications&#39; names; used both...">App::m_name</a> equality) <code>app</code>. The non-null pointers returned for any 2 calls, where <code>app</code> is different (by <a class="el" href="structipc_1_1session_1_1App.html#a8e67b57829fe43a122a23c699b5de8fd" title="Brief application name, readable to humans and unique across all other applications&#39; names; used both...">App::m_name</a> equality) among them, shall always differ.</p>
<p >See <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#ae30ae4b65cd4178fa26eed660688829f" title="The arena object on which one may call construct&lt;T&gt;(ctor_args...), where ctor_args are arguments to t...">shm::arena_lend::jemalloc::Session_mv::Arena</a> doc header for useful instructions on working with <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a1e47c282616158733240d3b7bd808036" title="Short-hand for shm::arena_lend::jemalloc::Session_mv::Arena. See app_shm() in particular.">Arena</a>, <code>lend_object()</code>, and <code>borrow_object()</code>.</p>
<h3>Perf</h3>
<p >Given the choice between Server_session_mv::app_shm() and the present method, the latter is somewhat slower; internally it involves a mutex-protected map lookup, while the former simply returns a cached pointer as of this writing.</p>
<p >Generally it is also quite fast for the user to save any non-null value returned by either <code><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a8d11292ef977d04acb9260036100c605" title="Returns pointer to the per-app SHM-arena, whose lifetime extends until *this is destroyed; or null if...">app_shm()</a></code>; the pointer returned shall always be the same after all.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">app</td><td><a class="el" href="structipc_1_1session_1_1Client__app.html" title="An App that is used as a client in at least one client-server IPC split.">Client_app</a> whose segregated SHM-arena to return, if a session for a client of the app has been opened prior to this call. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Pointer to <code>*this</code>-held per-<code>app</code> SHM-arena, if it has been created; null otherwise. See above. </dd></dl>

</div>
</div>
<a id="aa548c3379d4b8a8f0b9d618b0c1da7ba" name="aa548c3379d4b8a8f0b9d618b0c1da7ba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa548c3379d4b8a8f0b9d618b0c1da7ba">&#9670;&nbsp;</a></span>app_shm_builder_config()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;session::schema::MqType S_MQ_TYPE_OR_NONE, bool S_TRANSMIT_NATIVE_HANDLES, typename Mdt_payload &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html">Session_server</a>&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt;<a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a4d22e6f00d6b8b92fe99198837bce3b9">::Structured_msg_builder_config</a> <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html">ipc::session::shm::arena_lend::jemalloc::Session_server</a>&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt;::app_shm_builder_config </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structipc_1_1session_1_1Client__app.html">Client_app</a> &amp;&#160;</td>
          <td class="paramname"><em>app</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns builder config suitable for capnp-serializing out-messages in SHM arena <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a8d11292ef977d04acb9260036100c605" title="Returns pointer to the per-app SHM-arena, whose lifetime extends until *this is destroyed; or null if...">app_shm()</a> for the same <code><a class="el" href="structipc_1_1session_1_1Client__app.html" title="An App that is used as a client in at least one client-server IPC split.">Client_app</a> app</code>. </p>
<p >Alternatively you may use shm::arena_lend::jemalloc::Session_mv::app_shm_builder_config() off any session object filled-out by <code>*this</code> <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a4b451906ee2b46d230df5f252bbb64ed" title="Contract identical to simpler session::Session_server::async_accept() overload; but internally ensure...">async_accept()</a>, as long as its <a class="el" href="classipc_1_1session_1_1Server__session__mv.html#ac873543383b7a6da94d4353231f34ec2" title="The opposing application is described by a Client_app; this is that description.">Server_session_mv::client_app()</a> equals <code>app</code> (by <a class="el" href="structipc_1_1session_1_1App.html#a8e67b57829fe43a122a23c699b5de8fd" title="Brief application name, readable to humans and unique across all other applications&#39; names; used both...">App::m_name</a> equality).</p>
<p >Unlike <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a8d11292ef977d04acb9260036100c605" title="Returns pointer to the per-app SHM-arena, whose lifetime extends until *this is destroyed; or null if...">app_shm()</a> this method does not allow the case where <code>app_shm(app)</code> would have returned null. In that case the present method yields undefined behavior (assertion may trip).</p>
<h3>Perf</h3>
<p >Given the choice between Server_session_mv::app_shm_builder_config() and the present method, the latter is somewhat slower (reason: same as listed in <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a8d11292ef977d04acb9260036100c605" title="Returns pointer to the per-app SHM-arena, whose lifetime extends until *this is destroyed; or null if...">app_shm()</a> doc header).</p>
<p >Generally it is also quite fast for the user to save any value returned by either <code><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#aa548c3379d4b8a8f0b9d618b0c1da7ba" title="Returns builder config suitable for capnp-serializing out-messages in SHM arena app_shm() for the sam...">app_shm_builder_config()</a></code>, as an equal-by-value <code>Config</code> object shall be returned for the same (by <a class="el" href="structipc_1_1session_1_1App.html#a8e67b57829fe43a122a23c699b5de8fd" title="Brief application name, readable to humans and unique across all other applications&#39; names; used both...">App::m_name</a> equality) <code>app</code>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">app</td><td>See <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a8d11292ef977d04acb9260036100c605" title="Returns pointer to the per-app SHM-arena, whose lifetime extends until *this is destroyed; or null if...">app_shm()</a>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>See above. </dd></dl>

</div>
</div>
<a id="a1039d8bd2d4461085f3eeb5d24e40799" name="a1039d8bd2d4461085f3eeb5d24e40799"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1039d8bd2d4461085f3eeb5d24e40799">&#9670;&nbsp;</a></span>app_shm_lender_session()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;session::schema::MqType S_MQ_TYPE_OR_NONE, bool S_TRANSMIT_NATIVE_HANDLES, typename Mdt_payload &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">Structured_msg_builder_config::Builder::Session <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html">ipc::session::shm::arena_lend::jemalloc::Session_server</a>&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt;::app_shm_lender_session </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structipc_1_1session_1_1Client__app.html">Client_app</a> &amp;&#160;</td>
          <td class="paramname"><em>app</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>In short, what <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#aa548c3379d4b8a8f0b9d618b0c1da7ba" title="Returns builder config suitable for capnp-serializing out-messages in SHM arena app_shm() for the sam...">app_shm_builder_config()</a> is to shm::arena_lend::jemalloc::Session_mv::app_shm_builder_config(), this is to shm::arena_lend::jemalloc::app_shm_lender_session(). </p>
<p >Notes in <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#aa548c3379d4b8a8f0b9d618b0c1da7ba" title="Returns builder config suitable for capnp-serializing out-messages in SHM arena app_shm() for the sam...">app_shm_builder_config()</a> doc header apply here.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">app</td><td>See <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a8d11292ef977d04acb9260036100c605" title="Returns pointer to the per-app SHM-arena, whose lifetime extends until *this is destroyed; or null if...">app_shm()</a>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>See above. </dd></dl>

</div>
</div>
<a id="aa56818050f1bd25b26fc51690a6afbf8" name="aa56818050f1bd25b26fc51690a6afbf8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa56818050f1bd25b26fc51690a6afbf8">&#9670;&nbsp;</a></span>app_shm_ptr()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;session::schema::MqType S_MQ_TYPE_OR_NONE, bool S_TRANSMIT_NATIVE_HANDLES, typename Mdt_payload &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">std::shared_ptr&lt; typename <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html">Session_server</a>&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt;<a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a1e47c282616158733240d3b7bd808036">::Arena</a> &gt; <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html">ipc::session::shm::arena_lend::jemalloc::Session_server</a>&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt;::app_shm_ptr </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structipc_1_1session_1_1Client__app.html">Client_app</a> &amp;&#160;</td>
          <td class="paramname"><em>app</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Identical to <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a8d11292ef977d04acb9260036100c605" title="Returns pointer to the per-app SHM-arena, whose lifetime extends until *this is destroyed; or null if...">app_shm()</a> but returns that via a <code>shared_ptr</code>-handle as required for work directly within ipc::shm::arena_lend::jemalloc APIs. </p>
<p >Note this is a quirk of that particular API and, in particular, has no equivalent in <a class="el" href="namespaceipc_1_1session_1_1shm_1_1classic.html" title="Support for SHM-backed ipc::session sessions and session-servers with the SHM-classic (ipc::shm::clas...">ipc::session::shm::classic</a> <code><a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a></code> and <code><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html" title="This is to vanilla Session_server what shm::arena_lend::jemalloc::Server_session is to vanilla Server...">Session_server</a></code> counterparts. It should not be necessary to use except when going beyond <a class="el" href="namespaceipc_1_1session.html" title="Flow-IPC module providing the broad lifecycle and shared-resource organization – via the session conc...">ipc::session</a> for your SHM-arena needs.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">app</td><td>See above. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>See above. </dd></dl>

</div>
</div>
<a id="a96cce95ab7dccc577815b907c94b8f7e" name="a96cce95ab7dccc577815b907c94b8f7e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a96cce95ab7dccc577815b907c94b8f7e">&#9670;&nbsp;</a></span>app_shm_reader_config()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;session::schema::MqType S_MQ_TYPE_OR_NONE, bool S_TRANSMIT_NATIVE_HANDLES, typename Mdt_payload &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html">Session_server</a>&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt;<a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a0b167219307d2016e46490b82138c553">::Structured_msg_reader_config</a> <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html">ipc::session::shm::arena_lend::jemalloc::Session_server</a>&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt;::app_shm_reader_config </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structipc_1_1session_1_1Client__app.html">Client_app</a> &amp;&#160;</td>
          <td class="paramname"><em>app</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns reader config counterpart to <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#aa548c3379d4b8a8f0b9d618b0c1da7ba" title="Returns builder config suitable for capnp-serializing out-messages in SHM arena app_shm() for the sam...">app_shm_builder_config()</a> for a given <code><a class="el" href="structipc_1_1session_1_1Client__app.html" title="An App that is used as a client in at least one client-server IPC split.">Client_app</a> app</code>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">app</td><td>See <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a8d11292ef977d04acb9260036100c605" title="Returns pointer to the per-app SHM-arena, whose lifetime extends until *this is destroyed; or null if...">app_shm()</a>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>See above. </dd></dl>

</div>
</div>
<a id="a76037239acb4b0082023dbe7e7dafb0b" name="a76037239acb4b0082023dbe7e7dafb0b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a76037239acb4b0082023dbe7e7dafb0b">&#9670;&nbsp;</a></span>async_accept() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;session::schema::MqType S_MQ_TYPE_OR_NONE, bool S_TRANSMIT_NATIVE_HANDLES, typename Mdt_payload &gt; </div>
<div class="memtemplate">
template&lt;typename Task_err , typename N_init_channels_by_srv_req_func , typename Mdt_load_func &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html">ipc::session::shm::arena_lend::jemalloc::Session_server</a>&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt;::async_accept </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#ad4d812cdb1a017fb603c16b3a386d433">Server_session_obj</a> *&#160;</td>
          <td class="paramname"><em>target_session</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a95e9d47a5bd9c32b3d3970ed3af0db01">Channels</a> *&#160;</td>
          <td class="paramname"><em>init_channels_by_srv_req</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#aa846158c320f2870c77043b6270bb503">Mdt_reader_ptr</a> *&#160;</td>
          <td class="paramname"><em>mdt_from_cli_or_null</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a95e9d47a5bd9c32b3d3970ed3af0db01">Channels</a> *&#160;</td>
          <td class="paramname"><em>init_channels_by_cli_req</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">N_init_channels_by_srv_req_func &amp;&amp;&#160;</td>
          <td class="paramname"><em>n_init_channels_by_srv_req_func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Mdt_load_func &amp;&amp;&#160;</td>
          <td class="paramname"><em>mdt_load_func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Task_err &amp;&amp;&#160;</td>
          <td class="paramname"><em>on_done_func</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Contract identical to advanced <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a4b451906ee2b46d230df5f252bbb64ed" title="Contract identical to simpler session::Session_server::async_accept() overload; but internally ensure...">Session_server::async_accept()</a> overload; but internally ensures that the appropriate SHM-jemalloc arenas are available for use in the emitted <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#ad4d812cdb1a017fb603c16b3a386d433" title="Short-hand for the concrete Server_session-like type emitted by async_accept().">Server_session_obj</a>. </p>
<p >See doc header for <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a4b451906ee2b46d230df5f252bbb64ed" title="Contract identical to simpler session::Session_server::async_accept() overload; but internally ensure...">Session_server::async_accept()</a> advanced overload. However additional <code>Error_code</code>s may be emitted on error.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">Task_err</td><td>See above. </td></tr>
    <tr><td class="paramname">N_init_channels_by_srv_req_func</td><td>See above. </td></tr>
    <tr><td class="paramname">Mdt_load_func</td><td>See above. </td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">target_session</td><td>See other <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a4b451906ee2b46d230df5f252bbb64ed" title="Contract identical to simpler session::Session_server::async_accept() overload; but internally ensure...">async_accept()</a> overload. </td></tr>
    <tr><td class="paramname">init_channels_by_srv_req</td><td>See above. </td></tr>
    <tr><td class="paramname">mdt_from_cli_or_null</td><td>See above. </td></tr>
    <tr><td class="paramname">init_channels_by_cli_req</td><td>See above. </td></tr>
    <tr><td class="paramname">n_init_channels_by_srv_req_func</td><td>See above. </td></tr>
    <tr><td class="paramname">mdt_load_func</td><td>See above. </td></tr>
    <tr><td class="paramname">on_done_func</td><td>See above. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a4b451906ee2b46d230df5f252bbb64ed" name="a4b451906ee2b46d230df5f252bbb64ed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4b451906ee2b46d230df5f252bbb64ed">&#9670;&nbsp;</a></span>async_accept() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;session::schema::MqType S_MQ_TYPE_OR_NONE, bool S_TRANSMIT_NATIVE_HANDLES, typename Mdt_payload &gt; </div>
<div class="memtemplate">
template&lt;typename Task_err &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html">ipc::session::shm::arena_lend::jemalloc::Session_server</a>&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt;::async_accept </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#ad4d812cdb1a017fb603c16b3a386d433">Server_session_obj</a> *&#160;</td>
          <td class="paramname"><em>target_session</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Task_err &amp;&amp;&#160;</td>
          <td class="paramname"><em>on_done_func</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Contract identical to simpler <a class="el" href="classipc_1_1session_1_1Session__server.html#a13887cd64912bb5f5675e2817ff8435f" title="Asynchronously awaits for an opposing Client_session to request session establishment and calls on_do...">session::Session_server::async_accept()</a> overload; but internally ensures that the appropriate SHM-jemalloc arenas are available for use in the emitted <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#ad4d812cdb1a017fb603c16b3a386d433" title="Short-hand for the concrete Server_session-like type emitted by async_accept().">Server_session_obj</a>. </p>
<p >See doc header for <a class="el" href="classipc_1_1session_1_1Session__server.html#a13887cd64912bb5f5675e2817ff8435f" title="Asynchronously awaits for an opposing Client_session to request session establishment and calls on_do...">session::Session_server::async_accept()</a> simple overload. However additional <code>Error_code</code>s may be emitted on error.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">Task_err</td><td>See above. </td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">target_session</td><td>See above. Reminder (though this is enforced at compile-time): the type of <code>*target_session</code> for <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a4b451906ee2b46d230df5f252bbb64ed" title="Contract identical to simpler session::Session_server::async_accept() overload; but internally ensure...">Session_server::async_accept()</a> is <a class="el" href="namespaceipc_1_1session.html#ab01d5bce0ab2f3435ca9dd88d27609dc" title="A vanilla Server_session with no optional capabilities.">Server_session</a>; whereas here it is <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html" title="Identical to session::Server_session in every way, except that it makes available two SHM arenas,...">shm::arena_lend::jemalloc::Server_session</a>. </td></tr>
    <tr><td class="paramname">on_done_func</td><td>See above. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ac2c6ecf04a16b5aba00bdede17aa52e1" name="ac2c6ecf04a16b5aba00bdede17aa52e1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac2c6ecf04a16b5aba00bdede17aa52e1">&#9670;&nbsp;</a></span>shm_arena_pool_listener()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;session::schema::MqType S_MQ_TYPE_OR_NONE, bool S_TRANSMIT_NATIVE_HANDLES, typename Mdt_payload &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">ipc::shm::arena_lend::Owner_shm_pool_listener_for_repository * <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html">ipc::session::shm::arena_lend::jemalloc::Session_server</a>&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt;::shm_arena_pool_listener</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the arena-pool listener maintained throughout <code>*this</code> <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html" title="This is to vanilla Session_server what shm::arena_lend::jemalloc::Server_session is to vanilla Server...">Session_server</a>'s life. </p>
<p >One must register it with any arena <code>A</code>, if one wants to do <code>A.construct&lt;T&gt;()</code>, where <code>T</code> is an allocator-compliant data structure type with <a class="el" href="classipc_1_1shm_1_1stl_1_1Stateless__allocator.html" title="Stateless allocator usable with STL-compliant containers to store (or merely read) them directly in S...">shm::stl::Stateless_allocator</a>. (<a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html" title="This is to vanilla Session_server what shm::arena_lend::jemalloc::Server_session is to vanilla Server...">Session_server</a> does so automatically for any <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a1e47c282616158733240d3b7bd808036" title="Short-hand for shm::arena_lend::jemalloc::Session_mv::Arena. See app_shm() in particular.">Arena</a> it maintains out of the box, namely <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a361c867d10a255ff62cdb19b75fc0a18" title="Returns SHM Arena with per-session scope, meaning it shall be accessible only during the lifetime of ...">Session_mv::session_shm()</a> and the ones returned by <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a8d11292ef977d04acb9260036100c605" title="Returns pointer to the per-app SHM-arena, whose lifetime extends until *this is destroyed; or null if...">app_shm()</a>.) This may be useful if creating your own custom-purpose <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a1e47c282616158733240d3b7bd808036" title="Short-hand for shm::arena_lend::jemalloc::Session_mv::Arena. See app_shm() in particular.">Arena</a>; instead you can create your own <code>Owner_shm_pool_listener_for_repository</code>, but it is generally encouraged to not do so unnecessarily.</p>
<dl class="section return"><dt>Returns</dt><dd>See above. </dd></dl>

</div>
</div>
<a id="a522c28128981264487a7e35dd9ea3ef8" name="a522c28128981264487a7e35dd9ea3ef8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a522c28128981264487a7e35dd9ea3ef8">&#9670;&nbsp;</a></span>to_ostream()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;session::schema::MqType S_MQ_TYPE_OR_NONE, bool S_TRANSMIT_NATIVE_HANDLES, typename Mdt_payload &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html">ipc::session::shm::arena_lend::jemalloc::Session_server</a>&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt;::to_ostream </td>
          <td>(</td>
          <td class="paramtype">std::ostream *&#160;</td>
          <td class="paramname"><em>os</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Prints string representation to the given <code>ostream</code>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">os</td><td>Stream to which to write. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<h2 class="groupheader">Friends And Related Function Documentation</h2>
<a id="a4556b229bf2bfc3c9eb51af13c47de3d" name="a4556b229bf2bfc3c9eb51af13c47de3d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4556b229bf2bfc3c9eb51af13c47de3d">&#9670;&nbsp;</a></span>operator&lt;&lt;()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;session::schema::MqType S_MQ_TYPE_OR_NONE, bool S_TRANSMIT_NATIVE_HANDLES, typename Mdt_payload &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::ostream &amp; operator&lt;&lt; </td>
          <td>(</td>
          <td class="paramtype">std::ostream &amp;&#160;</td>
          <td class="paramname"><em>os</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html">Session_server</a>&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt; &amp;&#160;</td>
          <td class="paramname"><em>val</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">related</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Prints string representation of the given <code><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html" title="This is to vanilla Session_server what shm::arena_lend::jemalloc::Server_session is to vanilla Server...">Session_server</a></code> to the given <code>ostream</code>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">os</td><td>Stream to which to write. </td></tr>
    <tr><td class="paramname">val</td><td>Object to serialize. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>os</code>. </dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>session/shm/arena_lend/jemalloc/<a class="el" href="session_2shm_2arena__lend_2jemalloc_2jemalloc__fwd_8hpp.html">jemalloc_fwd.hpp</a></li>
<li>session/shm/arena_lend/jemalloc/<a class="el" href="ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2session__server_8hpp.html">session_server.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Apr 11 2025 20:02:23 for Flow-IPC by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
</small></address>
</body>
</html>
